# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions

name: Build and deploy container app to Azure Web App - CrystalPuzzle

on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  build:
    runs-on: 'ubuntu-latest'

    steps:
    - uses: actions/checkout@v2

    - name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v2

    - name: Log in to registry
      uses: docker/login-action@v2
      with:
        registry: https://index.docker.io/v1/
        username: ${{ secrets.AzureAppService_ContainerUsername_96a30ad2899d4427919a681bee1f1fba }}
        password: ${{ secrets.AzureAppService_ContainerPassword_0a6609493f3e4f7e93e5387888cdefce }}

    - name: Build and push container image to registry
      uses: docker/build-push-action@v3
      with:
        push: true
        tags: index.docker.io/${{ secrets.AzureAppService_ContainerUsername_96a30ad2899d4427919a681bee1f1fba }}/nginx:${{ github.sha }}
        file: ./Dockerfile

  deploy:
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: 'production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

    steps:
    - name: Deploy to Azure Web App
      id: deploy-to-webapp
      uses: azure/webapps-deploy@v2
      with:
        app-name: 'CrystalPuzzle'
        slot-name: 'production'
        publish-profile: ${{ secrets.AzureAppService_PublishProfile_1af14ef41cd0400eb2c1554828caaf24 }}
        images: 'index.docker.io/${{ secrets.AzureAppService_ContainerUsername_96a30ad2899d4427919a681bee1f1fba }}/nginx:${{ github.sha }}'
